import logging
import time

from hubstation.db.hubstation_db import HubStationDb
from hubstation.db.models import MEDIAINDEXES, MEDIAMOVIES
from hubstation.utils.nfo_uitls import NfoUtils
from hubstation.utils.path_utils import PathUtils
from hubstation.utils.string_utils import StringUtils


def init_db():
    """
    初始化数据库
    """
    logging.debug('开始初始化数据库...')
    HubStationDb().init_db()
    logging.debug('数据库初始化完成')


def init_data():
    """
    初始化数据
    """
    logging.debug('开始初始化数据...')
    HubStationDb().init_data()
    logging.debug('数据初始化完成')


def parse_jav():
    init_db()
    # init_data()
    jav_dir = "/Volumes/192.168.1.10/Eden/JAV"
    input_dir = "/Volumes/192.168.1.10/Eden/MegaPack/波多野结衣【無碼超清】"
    file_list = PathUtils.get_dir_files(in_path=jav_dir, exts=['.nfo'])
    number = len(file_list)
    print("文件数量：" + str(number))
    actors = []
    movies = []
    for file in file_list:
        print("文件清单：" + str(file))
        nfo = None
        MID = None
        try:
            nfo = NfoUtils(file)
            MID = nfo.get_element_value("tmdbid")
            if not MID:
                MID = nfo.get_element_value("id")
                if not MID:
                    MID = nfo.get_element_value("num")
        except Exception as err:
            print(str(err))

        if MID is None:
            print("MID is none")
        else:
            movies.append(file)
            HubStationDb().insert(MEDIAMOVIES(
                NAME=StringUtils.check_none(nfo.get_element_value("title")),
                DESC=StringUtils.check_none(nfo.get_element_value("plot")),
                CATEGORY="JAV",
                STUDIO=StringUtils.check_none(nfo.get_element_value("studio")),
                DIRECTOR=StringUtils.check_none(nfo.get_element_value("director")),
                MPAA=StringUtils.check_none(nfo.get_element_value("mpaa")),
                MID=StringUtils.check_none(nfo.get_element_value("tmdbid")),
                COUNTRY=StringUtils.check_none(nfo.get_element_value("country")),
                RELEASE_DATE=StringUtils.check_none(nfo.get_element_value("releasedate")),
                LENGTH=StringUtils.check_none(nfo.get_element_value("runtime")),
                LABELS=nfo.get_all_element_value("tag"),
                GENRES=nfo.get_all_element_value("genre"),
                MODELS=nfo.find_all_element_value("actor"),
                SERIES=StringUtils.check_none(nfo.get_element_value("set")),
                MOVIE_URL="https://www.javbus.com/" + StringUtils.check_none(nfo.get_element_value("tmdbid")),
                CREATE_TIME=time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())),
                UPDATE_TIME=time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
            ))
            HubStationDb().commit()
    print(movies)


if __name__ == '__main__':
    parse_jav()
